/*

* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Smart-Shop开源商城系统/ Java商城-首选电商平台系统 请务必保留此注释头信息
* |     开源地址: https://gitee.com/ningbo-qishan/gruul-mall
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     可正常分享和学习源码,未经授权 不可商用！
* |     商业版中台购买/开源版商业授权 联系技术客服
* |     官网:  https://www.73app.cn/
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Copyright (c) 2016-2999 宁波启山智软科技有限公司
* |     版权所有 ,侵权必究！
* ------------------------------------------------------------------------

*/
package com.medusa.gruul.finance.api.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.medusa.gruul.common.data.base.BaseEntity;
import com.medusa.gruul.finance.api.enums.AccountTypeEnum;
import com.medusa.gruul.finance.api.enums.AuditStatusEnum;
import com.medusa.gruul.finance.api.enums.ChannelTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 提现记录
 * </p>
 *
 * @author alan
 * @since 2020 -02-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_finance_withdrawal_record")
@ApiModel(value = "FinanceWithdrawalRecord对象", description = "提现记录")
public class FinanceWithdrawalRecord extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @ApiModelProperty(value = "id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 商铺ID
     */
    @ApiModelProperty(value = "商铺ID")
    @TableField("shop_id")
    private String shopId;

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    @TableField("user_id")
    private String userId;

    /**
     * 用户帐号
     */
    @ApiModelProperty(value = "用户帐号")
    @TableField("user_name")
    private String userName;

    /**
     * 用户头像
     */
    @ApiModelProperty(value = "用户头像")
    @TableField("user_avatar_url")
    private String userAvatarUrl;

    /**
     * 用户类型：0->团长;1->区域团长;2->提货点;3->用户
     */
    @ApiModelProperty(value = "用户类型：0->团长;1->区域团长;2->提货点;3->用户")
    @TableField("account_type")
    private AccountTypeEnum accountType;

    /**
     * 金额
     */
    @ApiModelProperty(value = "金额")
    @TableField("amount")
    private BigDecimal amount;

    /**
     * 提现渠道:0->微信；1->支付宝；2->银行卡
     */
    @ApiModelProperty(value = "提现渠道:0->微信；1->支付宝；2->银行卡; 3->线下结算")
    @TableField("channel")
    private ChannelTypeEnum channel;

    /**
     * 手机
     */
    @ApiModelProperty(value = "手机")
    @TableField("phone")
    private String phone;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    @TableField("name")
    private String name;
    
    /**
     * 扩展姓名
     */
    @ApiModelProperty(value = "扩展姓名")
    @TableField("ext_name")
    private String extName;

    /**
     * openId
     */
    @ApiModelProperty(value = "openId")
    @TableField("open_id")
    private String openId;

    /**
     * 账号
     */
    @ApiModelProperty(value = "账号")
    @TableField("account")
    private String account;

    /**
     * 开户行
     */
    @ApiModelProperty(value = "开户行")
    @TableField("bank_name")
    private String bankName;

    /**
     * 交易流水号
     */
    @ApiModelProperty(value = "交易流水号")
    @TableField("trade_no")
    private String tradeNo;

    /**
     * 到账时间
     */
    @ApiModelProperty(value = "到账时间")
    @TableField("arrive_time")
    private LocalDateTime arriveTime;

    /**
     * 审核状态:0->合伙人待审核；1->总店待审核；2->已通过；3->已拒绝
     */
    @ApiModelProperty(value = "审核状态:0->合伙人待审核；1->总店待审核；2->已通过；3->已拒绝")
    @TableField("audit_status")
    private AuditStatusEnum auditStatus;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField("note")
    private String note;
    
    /**
     * 拒绝说明
     */
    @ApiModelProperty(value = "拒绝说明")
    @TableField("reason")
    private String reason;

    /**
     * 提现手续费
     */
    @ApiModelProperty(value = "提现手续费")
    @TableField("commission")
    private BigDecimal commission;

    /**
     * 流水号
     */
    @ApiModelProperty(value = "流水号")
    @TableField("sn")
    private String sn;

}


